from redis import StrictRedis
import logging


# 项目的配置文件

# 创建项目父类配置类

class Config(object):
    # a.mysql数据库的配置信息
    SQLALCHEMY_DATABASE_URI = 'mysql://root:mysql@127.0.0.1:3306/information'
    # b.开启数据库跟踪
    SQLALCHEMY_TRACK_MODIFICATIONS = True
    # c.开启debug模式
    DEBUG = True
    # 当数据库会话对象或者app上下文结束的时候会对模型进行自动提交操作
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True

    # d.Redis 数据库的配置信息
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = 6379
    REDIS_NUM = 7

    # e.session配置
        # redis 的存储是可以设置有效时长，session 是对象
        # 生成随机４８位字段　命令行如下：
        # import os
        # import base64
        # base64.b64encode(os.urandom(48))
    SECRET_KEY = 'aijidsofkwemfcxkoko'
    # 调整session存储到redis的配置信息
    # 设置存储session的数据库类型
    SESSION_TYPE = "redis"
    # 创建数据库实例对象给配置
    SESSION_REDIS = StrictRedis(host=REDIS_HOST, port=REDIS_PORT, db=REDIS_NUM)
    # session数据需要加密处理
    SESSION_USE_SIGNER = True
    # session设置有过期时长的
    SESSION_PERMANENT = False
    # 设置过期时长 默认值：timedelta(days=31)
    PERMANENT_SESSION_LIFETIME = 86400 *2

#     开发模式的配置
class DevelopmentConfig(Config):
    DEBUG = True
#     设置开发环境日志级别
    LOG_LEVEL = logging.DEBUG

#     线上模式的配置
class ProductionConfig(Config):
    DEBUG = False
#   mysql数据库的配置信息
#     SQLALCHEMY_DATABASE_URI = 'mysql://root:mysql@127.0.0.1:3306/information'
# 设置开发环境日志级别
    LOG_LEVEL = logging.WARNING

#     提供一个接口给外界使用
config_dict = {
    'development':DevelopmentConfig,
    'production':ProductionConfig
}
